/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * PantallaProductosNuevoProducto.java
 *
 * Created on 13-feb-2012, 11:50:39
 */
package interfacesGraficas.JDialogs;

import entidadesNegocio.TipoProducto;
import interfacesGraficas.ControladorProductos;
import interfacesGraficas.ModeloTablas.ModeloTablaTipoProducto;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;

/**
 *
 * @author diego
 */
public class PantallaProductosNuevoTipoProd extends javax.swing.JFrame {

    ControladorProductos controlador;
    TipoProducto tipoSeleccionado;
    List<TipoProducto> listaTiposList;

    /** Creates new form PantallaProductosNuevoProducto */
    public PantallaProductosNuevoTipoProd(ControladorProductos control) {
        initComponents();

        setTitle("Nuevo tipo Producto");
        setLocationRelativeTo(null);

        controlador = control;

        tblTipos.setModel(new ModeloTablaTipoProducto());

        tblTipos.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                int fila = tblTipos.rowAtPoint(e.getPoint());
                if (fila != -1) {
                    tipoSeleccionado = (TipoProducto) ((ModeloTablaTipoProducto) tblTipos.getModel()).getRow(fila);
                    controlador.seleccinarTipoProducto(tipoSeleccionado);
                }

            }
        });

        tblTipos.addKeyListener(new KeyAdapter() {

            @Override
            public void keyReleased(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                    if (tblTipos.getSelectedColumn() == 0) {
                        return;
                    } else {
                        tipoSeleccionado = (TipoProducto) ((ModeloTablaTipoProducto) tblTipos.getModel()).getRow(tblTipos.getSelectedRow());
                        guardarTipoSeleccionado();
                    }
                }
            }
        });

        btnEliminarTipo.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (tipoSeleccionado != null) {
                    controlador.eliminarTipoProducto(tipoSeleccionado);
                    listarTipos();
                }
            }
        });

        btnNuevoTipo.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                ((ModeloTablaTipoProducto) tblTipos.getModel()).addRow(new TipoProducto());
            }
        });

        btnSalir.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                ocultar();
            }
        });
    }

    public void ocultar() {
        setVisible(false);

    }

    @Override
    public void setVisible(boolean bool) {
        super.setVisible(bool);
        if (bool) {
            listarTipos();

        }
    }

    public void listarTipos() {
        ((ModeloTablaTipoProducto) tblTipos.getModel()).clear();
        listaTiposList = controlador.buscarTiposProductos();
        ((ModeloTablaTipoProducto) tblTipos.getModel()).setListaElementos(listaTiposList);
    }

    public void guardarTipoSeleccionado() {
        List<TipoProducto> listaTipoProductos = new ArrayList<TipoProducto>();
        listaTipoProductos.add(tipoSeleccionado);
        controlador.guardarTipoProductos(listaTipoProductos);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jToolBar1 = new javax.swing.JToolBar();
        btnNuevoTipo = new javax.swing.JButton();
        btnEliminarTipo = new javax.swing.JButton();
        btnSalir = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tblTipos = new javax.swing.JTable();

        jToolBar1.setFloatable(false);
        jToolBar1.setRollover(true);
        jToolBar1.setMaximumSize(new java.awt.Dimension(172, 46));
        jToolBar1.setMinimumSize(new java.awt.Dimension(120, 46));
        jToolBar1.setPreferredSize(new java.awt.Dimension(120, 46));

        btnNuevoTipo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/utilidades/imagenes/iconos/folder_new-30.png"))); // NOI18N
        btnNuevoTipo.setToolTipText("Nuevo Tipo");
        btnNuevoTipo.setFocusable(false);
        btnNuevoTipo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnNuevoTipo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(btnNuevoTipo);

        btnEliminarTipo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/utilidades/imagenes/iconos/user-trash-30.png"))); // NOI18N
        btnEliminarTipo.setToolTipText("EliminarTipo");
        btnEliminarTipo.setFocusable(false);
        btnEliminarTipo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnEliminarTipo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(btnEliminarTipo);

        btnSalir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/utilidades/imagenes/iconos/Log-out-30.png"))); // NOI18N
        btnSalir.setToolTipText("Salir");
        btnSalir.setFocusable(false);
        btnSalir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnSalir.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(btnSalir);

        jScrollPane1.setViewportView(tblTipos);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 312, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnEliminarTipo;
    private javax.swing.JButton btnNuevoTipo;
    private javax.swing.JButton btnSalir;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JTable tblTipos;
    // End of variables declaration//GEN-END:variables
}
